package com.dragon.modules.yuegou.model.system;

import com.dragon.modules.yuegou.entity.system.DocumentEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 文档模型类
 * 
 * @author pbuilder generated
 * @date 2019-05-14 15:42:12
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class Document extends DocumentEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 构造一个空文档模型对象
	 */
	public Document(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个文档模型对象
	 * 
	 * @param entity 实体对象
	 */
	public Document(DocumentEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个文档模型对象
	 * 
	 * @param other 其它对象
	 */
	public Document(Document other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置
	 * 
	 * @param id 
	 * @return 当前对象
	 */
    public Document id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getName() {
    	return name;
    }

    /**
	 * 设置文件名
	 * 
	 * @param name 文件名
	 * @return 当前对象
	 */
    public Document name(String name) {
    	this.name = name;
    	return this;
    }

	@Override
	public String getUrl() {
    	return url;
    }

    /**
	 * 设置
	 * 
	 * @param url 
	 * @return 当前对象
	 */
    public Document url(String url) {
    	this.url = url;
    	return this;
    }

	@Override
	public Long getContentLength() {
    	return contentLength;
    }

    /**
	 * 设置文件大小（字节数），-1表示大小位置
	 * 
	 * @param contentLength 文件大小（字节数），-1表示大小位置
	 * @return 当前对象
	 */
    public Document contentLength(Long contentLength) {
    	this.contentLength = contentLength;
    	return this;
    }

	@Override
	public String getContentType() {
    	return contentType;
    }

    /**
	 * 设置
	 * 
	 * @param contentType 
	 * @return 当前对象
	 */
    public Document contentType(String contentType) {
    	this.contentType = contentType;
    	return this;
    }

	@Override
	public String getContentEncoding() {
    	return contentEncoding;
    }

    /**
	 * 设置
	 * 
	 * @param contentEncoding 
	 * @return 当前对象
	 */
    public Document contentEncoding(String contentEncoding) {
    	this.contentEncoding = contentEncoding;
    	return this;
    }

	@Override
	public String getContentMd5() {
    	return contentMd5;
    }

    /**
	 * 设置
	 * 
	 * @param contentMd5 
	 * @return 当前对象
	 */
    public Document contentMd5(String contentMd5) {
    	this.contentMd5 = contentMd5;
    	return this;
    }

	@Override
	public String getFileFormat() {
    	return fileFormat;
    }

    /**
	 * 设置文件格式，例如png，doc，xlsx等
	 * 
	 * @param fileFormat 文件格式，例如png，doc，xlsx等
	 * @return 当前对象
	 */
    public Document fileFormat(String fileFormat) {
    	this.fileFormat = fileFormat;
    	return this;
    }

	@Override
	public Boolean getTemp() {
    	return temp;
    }

    /**
	 * 设置是否是临时文件
	 * 
	 * @param temp 是否是临时文件
	 * @return 当前对象
	 */
    public Document temp(Boolean temp) {
    	this.temp = temp;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
    public Document createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public Boolean getDel() {
    	return del;
    }

    /**
	 * 设置是否已删除
	 * 
	 * @param del 是否已删除
	 * @return 当前对象
	 */
    public Document del(Boolean del) {
    	this.del = del;
    	return this;
    }

	@Override
	public LocalDateTime getDelTime() {
    	return delTime;
    }

    /**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 * @return 当前对象
	 */
    public Document delTime(LocalDateTime delTime) {
    	this.delTime = delTime;
    	return this;
    }
}
